package com.example.yan.java打印图形;

import java.util.Scanner;

public class Main {

//    public static void main(String[] args) {
//        print(8); // 输出 8 行的菱形
//    }
//
//    public static void print(int size) {
//        if (size % 2 == 0) {
//            size++; // 计算菱形大小
//        }
//        for (int i = 0; i < size / 2 + 1; i++) {
//            for (int j = size / 2 + 1; j > i + 1; j--) {
//                System.out.print(" "); // 输出左上角位置的空白
//            }
//            for (int j = 0; j < 2 * i + 1; j++) {
//                System.out.print("*"); // 输出菱形上半部边缘
//            }
//            System.out.println(); // 换行
//        }
//        for (int i = size / 2 + 1; i < size; i++) {
//            for (int j = 0; j < i - size / 2; j++) {
//                System.out.print(" "); // 输出菱形左下角空白
//            }
//            for (int j = 0; j < 2 * size - 1 - 2 * i; j++) {
//                System.out.print("*"); // 输出菱形下半部边缘
//            }
//            System.out.println(); // 换行
//        }
//    }

    public static void main(String[] args) {
        while (true){
            Scanner scanner = new Scanner(System.in);
            System.out.println("************请输入菱形的数目************");
            String n = scanner.nextLine();
            System.out.println("打印的图形如下================");
            print(Integer.valueOf(n));

        }
    }

    public static void print(int n){
        if (n % 2 == 0) {
            n++;//计算菱形的行数
        }

        for (int i = 0; i < n; i++){
            int start;//第i行开始画菱形的下标
            int end;//第i行结束画菱形的下标
            if (i <= n/2){//计算递增部分开始结束下标
                start = n/2-i;
                end = n/2+i;
            }else {//计算递减部分开始结束下标
                start = n/2 - (n-1-i);
                end = n/2 + (n-1-i);
            }

            int count = 0;
            for (int j =0; j<n;j++){
                if (j>=start && j<=end){//开始结束之间即画图部分
                    System.out.print("*");
                    count++;
                    if (count == end - start +1){
                        break;
                    }
                }else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }

    }
}
